---
title: Print a legal letter
summary: Assemble print-ready letter content (attorney names, worker info, policy names) primarily via LegalApi REST calls, resolve case number via LEGAL.vw_cases, and generate a print-document sequence number.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
operation_id: OP-CLL-018
trigger: User requests a printed letter for a legal case
---

# Print a legal letter

Assemble print-ready letter content (attorney names, worker info, policy names) primarily via LegalApi REST calls, resolve case number via LEGAL.vw_cases, and generate a print-document sequence number.

| Field | Value |
|---|---|
| **Operation ID** | OP-CLL-018 |
| **Trigger** | User requests a printed letter for a legal case |
| **Inputs** | Business-object criteria properties set by the caller (see linked SQL parameter tables) |
| **Outputs** | Persisted/retrieved `clsLetterRequest` state |
| **Primary components** | `clsLetterRequest, clsLetterRequestCollection` |
| **Entry point** | `SAIF.Business.Claim.Legal\Print\clsLetterRequest.vb, Print\clsLetterRequestCollection.vb` |

## Steps

1. Validate the request against applicable business rules: [BR-CLM-LGL-020](../business-rules.md#br-clm-lgl-020-letter-hearing-date-renders-empty-rather-than-a-default-value), [BR-CLM-LGL-021](../business-rules.md#br-clm-lgl-021-policy-short-name-truncation-and-special-case-substitution), [BR-CLM-LGL-022](../business-rules.md#br-clm-lgl-022-state-entity-attorney-title-override), [BR-CLM-LGL-023](../business-rules.md#br-clm-lgl-023-worker-attorney-display-fallback-chain)
   - On failure: validation errors are collected and returned to the caller; the operation does not proceed.
2. Execute the underlying data access for `clsLetterRequest` against: [DB-CLL-058](../sql/SQL-058-letterrequest.md), [DB-CLL-053](../sql/SQL-053-createfile.md)
   - Tables affected: [LEGAL.vw_cases](../database-tables.md#legal.vw_cases)
3. Return the resulting object graph (or success/failure status) to the caller.

## Process flow

```mermaid
flowchart TD
	Start([User requests a printed letter for a legal case]) --> Validate[Validate business rules]
	Validate --> Decision{Valid?}
	Decision -->|No| EndErr([Return validation errors])
	Decision -->|Yes| Exec[Execute data access for clsLetterRequest]
	Exec --> EndOk([Return result])
```

## Failure and edge-case behavior

- Validation failure: the operation returns collected errors without persisting any change.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- `SAIF.Business.Claim.Legal\` (clsLetterRequest, clsLetterRequestCollection)